﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using InseSoft.Models.Entities;

namespace InseSoft.Models
{
    public interface IInseContext : IDisposable
    {
        IDbSet<Cliente> Clientes { get; set; }
        IDbSet<Cotizacion> Cotizaciones { get; set; }
        IDbSet<Empresa> Empresas { get; set; }
        IDbSet<Linea> Lineas { get; set; }
        IDbSet<Material> Materiales { get; set; }
        IDbSet<Orden> Ordenes { get; set; }
        IDbSet<Permiso> Permisos { get; set; }
        IDbSet<SolicitudCotizacion> SolicitudCotizaciones { get; set; }
        IDbSet<TipoCambio> TipoCambios { get; set; }
        IDbSet<TipoProducto> TipoProductos { get; set; }
        IDbSet<Usuario> Usuarios { get; set; }
        IDbSet<Vendedor> Vendedores { get; set; }

        bool HasPendingChanges();
        IEnumerable<IEntity> AddedOrModifiedEntities<T>();
        IDbSet<TEntity> Set<TEntity>() where TEntity : class;

        void Save();
    }
}
